﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1.DL
{
    public class Tratamientos : db
    {
        public List<Entidades.Tratamiento> Lista(Entidades.Paciente p)
        {
            sql_con.Open();
            sql_cmd = sql_con.CreateCommand();
            string CommandText = string.Format("select Fecha, IdPaciente, Pieza, Descripcion from Tratamientos where IdPaciente={0} order by Fecha;", p.Id);
            DB = new System.Data.SQLite.SQLiteDataAdapter(CommandText, sql_con);
            ds.Reset();
            DB.Fill(ds);
            dt = ds.Tables[0];
            sql_con.Close();
            List<Entidades.Tratamiento> lista = new List<Entidades.Tratamiento>();
            CompletarTratamientos(lista);
            return lista;
        }

        private void CompletarTratamientos(List<Entidades.Tratamiento> lista)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Entidades.Tratamiento t = new Entidades.Tratamiento();
                t.Fecha = System.Convert.ToDateTime(dt.Rows[i]["Fecha"]);
                t.IdPaciente = System.Convert.ToUInt32(dt.Rows[i]["IdPaciente"]);
                t.Pieza = System.Convert.ToString(dt.Rows[i]["Pieza"]);
                t.Descripcion = System.Convert.ToString(dt.Rows[i]["Descripcion"]);
                lista.Add(t);
            }
        }

        internal void Insertar(Entidades.Tratamiento t)
        {
            string qry = string.Format("INSERT INTO Tratamientos VALUES('{0:yyyy-MM-dd HH:mm:ss}',{1},'{2}','{3}')", t.Fecha, t.IdPaciente, t.Pieza, t.Descripcion);
            ExecuteQuery(qry);
        }

        internal void Eliminar(Entidades.Tratamiento t)
        {
            string qry = string.Format("DELETE FROM Tratamientos WHERE Fecha='{0:yyyy-MM-dd HH:mm:ss}' AND IdPaciente='{1}'", t.Fecha, t.IdPaciente);
            ExecuteQuery(qry);
        }

        internal void Modificar(Entidades.Tratamiento t)
        {
            string qry = string.Format("UPDATE Tratamientos SET Pieza='{1}', Descripcion='{2}' WHERE IdPaciente={3} AND Fecha='{0:yyyy-MM-dd HH:mm:ss}';",
                t.Fecha, t.Pieza, t.Descripcion, t.IdPaciente);
            ExecuteQuery(qry);
        }

        internal List<Entidades.Tratamiento> ListaFiltradaXTratamientos(Entidades.Paciente p, string filtro)
        {
            sql_con.Open();
            sql_cmd = sql_con.CreateCommand();
            string CommandText = string.Format("select Fecha, IdPaciente, Pieza, Descripcion from Tratamientos where IdPaciente={0} and Descripcion like '%{1}%' order by Fecha;", p.Id, filtro);
            DB = new System.Data.SQLite.SQLiteDataAdapter(CommandText, sql_con);
            ds.Reset();
            DB.Fill(ds);
            dt = ds.Tables[0];
            sql_con.Close();
            List<Entidades.Tratamiento> lista = new List<Entidades.Tratamiento>();
            CompletarTratamientos(lista);
            return lista;
        }
    }
}